Executing applications in a highly heterogeneous, dynamically balanced computer system or network of systems, provides a highly available, responsive platform for user applications. Such systems are typically optimized for maximum possible throughput and application response time.
Users of such complex systems have an increasing need to manage additional constraints in the way of energy efficiency and cost control. Most current approaches to managing these constraints consist of manual schemes such as energy consumption monitoring by operations staff and manual server quiesce and shutdown, or simple automated execution of the same manual process. This does not cater well for the variable demand that may be exerted on such systems, nor for the responsiveness that modern systems require.
In certain market segments, users of such systems in specific geographies (e.g., the banking sector in China) may have regulatory maximum limits on CPU consumption by the logical partitions within their servers. It is often difficult to satisfy these requirements except by cost-intensive human monitoring and manual manipulation of system resource use.
It is desirable to address these resource constraints in multiprocessing computer systems wherein the conflicting needs for dynamic workload management over a virtualization layer and for power management of hardware resources cannot be reconciled other than partially, and by means of expensive and potentially error-prone application and system redesign.